Hi all,
I'm observing some strange behaviour in an iOS app that implements NEPacketTunnelExtension. I have been experiencing this for a good while now over various different iOS versions and have never been able to get to the bottom of it.
The moment the NEPacketTunnelProvider is started, my main app UI process starts getting hammered with 45% "Overhead" and 25% "Network" in the Xcode Energy Impact view and the device starts to run quite warm. CPU usage of the process is virtually zero, network activity generated by our app is virtually non-existent at the time (and Instruments supports this) and not aware of anything else going on.
We do send XPC requests to the VPN extension once every couple of seconds for a status update, but the UI has no other networking code. If we stop the VPN extension, the "Overheads" and "Network" energy impacts of the main app drop back down to normal. It's happening reliably and repeatably.
If we attach the debugger to the actual network extension PID, it looks completely normal — no high energy impact there, which makes me think this isn't being caused by our VPN extension itself. If the main app goes into the background, it gets suspended, as expected, and the VPN extension carries on with a comparatively low energy impact, as expected.
Having a hard time narrowing down what is going on here.
Any ideas?